package com.jc.order.constant;

public enum CountryEnum {

    // 国家列表
    CHN("CHN", "中国"),
    USA("USA", "美国"),

    AFG("AFG", "阿富汗"),
    AGO("AGO", "安哥拉"),
    ALB("ALB", "阿尔巴尼亚"),
    AND("AND", "安道尔"),
    ARE("ARE", "阿联酋"),
    ARG("ARG", "阿根廷"),
    ARM("ARM", "亚美尼亚"),
    ATG("ATG", "安提瓜和巴布达"),
    AUS("AUS", "澳大利亚"),
    AUT("AUT", "奥地利"),
    AZE("AZE", "阿塞拜疆"),
    BDI("BDI", "布隆迪"),
    BEL("BEL", "比利时"),
    BEN("BEN", "贝宁"),
    BFA("BFA", "布基纳法索"),
    BGD("BGD", "孟加拉"),
    BGR("BGR", "保加利亚"),
    BHR("BHR", "巴林"),
    BHS("BHS", "巴哈马群岛"),
    BIH("BIH", "波斯尼亚和黑塞哥维那"),
    BLR("BLR", "白俄罗斯"),
    BLZ("BLZ", "伯利兹"),
    BOL("BOL", "玻利维亚"),
    BRA("BRA", "巴西"),
    BRB("BRB", "巴巴多斯"),
    BRN("BRN", "文莱"),
    BTN("BTN", "不丹"),
    BWA("BWA", "博茨瓦纳"),
    CAF("CAF", "中非共和国"),
    CAN("CAN", "加拿大"),
    CHE("CHE", "瑞士"),
    CHL("CHL", "智利"),

    CIV("CIV", "科特迪瓦"),
    CMR("CMR", "喀麦隆"),
    COD("COD", "刚果民主共和国"),
    COG("COG", "刚果共和国"),
    COL("COL", "哥伦比亚"),
    COM("COM", "科摩罗"),
    CPV("CPV", "佛得角"),
    CRI("CRI", "哥斯达黎加"),
    CUB("CUB", "古巴"),
    CYP("CYP", "塞浦路斯"),
    CZE("CZE", "捷克"),
    DEU("DEU", "德国"),
    DJI("DJI", "吉布提"),
    DMA("DMA", "多米尼克"),
    DNK("DNK", "丹麦"),
    DOM("DOM", "多米尼加共和国"),
    DZA("DZA", "阿尔及利亚"),
    ECU("ECU", "厄瓜多尔"),
    EGY("EGY", "埃及"),
    ERI("ERI", "厄立特里亚"),
    ESP("ESP", "西班牙"),
    EST("EST", "爱沙尼亚"),
    ETH("ETH", "埃塞俄比亚"),
    FIN("FIN", "芬兰"),
    FJI("FJI", "斐济"),
    FRA("FRA", "法国"),
    FSM("FSM", "密克罗尼西亚"),
    GAB("GAB", "加蓬"),
    GBR("GBR", "英国"),
    GEO("GEO", "格鲁吉亚"),
    GHA("GHA", "加纳"),
    GIN("GIN", "几内亚共和国"),
    GMB("GMB", "冈比亚"),
    GNB("GNB", "几内亚比绍"),
    GNQ("GNQ", "赤道几内亚"),
    GRC("GRC", "希腊"),
    GRD("GRD", "格林纳达"),
    GTM("GTM", "危地马拉"),
    GUY("GUY", "圭亚那"),
    HND("HND", "洪都拉斯"),
    HRV("HRV", "克罗地亚"),
    HTI("HTI", "海地"),
    HUN("HUN", "匈牙利"),
    IDN("IDN", "印度尼西亚"),
    IND("IND", "印度"),
    IRL("IRL", "爱尔兰"),
    IRN("IRN", "伊朗"),
    IRQ("IRQ", "伊拉克"),
    ISL("ISL", "冰岛"),
    ISR("ISR", "以色列"),
    ITA("ITA", "意大利"),
    JAM("JAM", "牙买加"),
    JOR("JOR", "约旦"),
    JPN("JPN", "日本"),
    KAZ("KAZ", "哈萨克斯坦"),
    KEN("KEN", "肯尼亚"),
    KGZ("KGZ", "吉尔吉斯共和国"),
    KHM("KHM", "柬埔寨"),
    KIR("KIR", "基里巴斯"),
    KNA("KNA", "圣基茨和尼维斯"),
    KOR("KOR", "韩国"),
    KWT("KWT", "科威特"),
    LAO("LAO", "老挝"),
    LBN("LBN", "黎巴嫩"),
    LBR("LBR", "利比里亚"),
    LBY("LBY", "利比亚"),
    LCA("LCA", "圣卢西亚"),
    LIE("LIE", "列支敦士登"),
    LKA("LKA", "斯里兰卡"),
    LSO("LSO", "莱索托"),
    LTU("LTU", "立陶宛"),
    LUX("LUX", "卢森堡"),
    LVA("LVA", "拉托维亚"),
    MAR("MAR", "摩洛哥"),
    MCO("MCO", "摩纳哥"),
    MDA("MDA", "摩尔多瓦"),
    MDG("MDG", "马达加斯加"),
    MDV("MDV", "马尔代夫"),
    MEX("MEX", "墨西哥"),
    MHL("MHL", "马绍尔群岛"),
    MKD("MKD", "马其顿"),
    MLI("MLI", "马里"),
    MLT("MLT", "马耳他"),
    MMR("MMR", "缅甸"),
    MNE("MNE", "黑山"),
    MNG("MNG", "蒙古"),
    MOZ("MOZ", "莫桑比克"),
    MRT("MRT", "毛里塔尼亚"),
    MUS("MUS", "毛里求斯"),
    MWI("MWI", "马拉维"),
    MYS("MYS", "马来西亚"),
    NAM("NAM", "纳米比亚"),
    NER("NER", "尼日尔"),
    NGA("NGA", "尼日利亚"),
    NIC("NIC", "尼加拉瓜"),
    NLD("NLD", "荷兰"),
    NOR("NOR", "挪威"),
    NPL("NPL", "尼泊尔"),
    NRU("NRU", "瑙鲁"),
    NZL("NZL", "新西兰"),
    OMN("OMN", "阿曼"),
    PAK("PAK", "巴基斯坦"),
    PAN("PAN", "巴拿马"),
    PER("PER", "秘鲁"),
    PHL("PHL", "菲律宾"),
    PLW("PLW", "帕劳"),
    PNG("PNG", "巴布亚新几内亚"),
    POL("POL", "波兰"),
    PRK("PRK", "朝鲜"),
    PRT("PRT", "葡萄牙"),
    PRY("PRY", "巴拉圭"),
    QAT("QAT", "卡塔尔"),
    ROU("ROU", "罗马尼亚"),
    RUS("RUS", "俄罗斯联邦"),
    RWA("RWA", "卢旺达"),
    SAU("SAU", "沙特"),
    SDN("SDN", "苏丹"),
    SEN("SEN", "塞内加尔"),
    SGP("SGP", "新加坡"),
    SLB("SLB", "所罗门群岛"),
    SLE("SLE", "塞拉利昂"),
    SLV("SLV", "萨尔瓦多"),
    SMR("SMR", "圣马力诺"),
    SOM("SOM", "索马里"),
    SRB("SRB", "塞尔维亚"),
    SSD("SSD", "南苏丹"),
    STP("STP", "圣多美和普林西比"),
    SUR("SUR", "苏里南"),
    SVK("SVK", "斯洛伐克"),
    SVN("SVN", "斯洛文尼亚"),
    SWE("SWE", "瑞典"),
    SWZ("SWZ", "斯威士兰"),
    SYC("SYC", "塞舌尔"),
    SYR("SYR", "叙利亚"),
    TCD("TCD", "乍得"),
    TGO("TGO", "多哥"),
    THA("THA", "泰国"),
    TJK("TJK", "塔吉克斯坦"),
    TKM("TKM", "土库曼斯坦"),
    TMP("TMP", "东帝汶"),
    TON("TON", "汤加"),
    TTO("TTO", "特利尼达和多巴哥"),
    TUN("TUN", "突尼斯"),
    TUR("TUR", "土耳其"),
    TUV("TUV", "图瓦卢"),
    TZA("TZA", "坦桑尼亚"),
    UGA("UGA", "乌干达"),
    UKR("UKR", "乌克兰"),
    URY("URY", "乌拉圭"),

    UZB("UZB", "乌兹别克斯坦"),
    VCT("VCT", "圣文森特和格林纳丁斯"),
    VEN("VEN", "委内瑞拉"),
    VNM("VNM", "越南"),
    VUT("VUT", "瓦努阿图"),
    WSM("WSM", "萨摩亚"),
    YEM("YEM", "也门"),
    ZAF("ZAF", "南非"),
    ZMB("ZMB", "赞比亚"),
    ZWE("ZWE", "津巴布韦"),

    // 地区列表
    R_207("207", "加那利群岛"),
    R_210("210", "塞卜泰(休达)"),
    R_256("256", "梅利利亚"),
    R_409("409", "博内尔"),
    R_436("436", "萨巴"),
    R_604("604", "盖比群岛"),
    R_612("612", "社会群岛"),
    R_615("615", "土阿莫土群岛"),
    ABW("ABW", "阿鲁巴岛"),
    ANT("ANT", "荷属安地列斯群岛"),
    BMU("BMU", "百慕大群岛"),
    COK("COK", "库克群岛"),
    CUW("CUW", "库拉索"),
    CYM("CYM", "开曼群岛"),
    ESH("ESH", "西撒哈拉"),
    GIB("GIB", "直布罗陀"),
    GLP("GLP", "瓜德罗普岛"),
    GRL("GRL", "格陵兰"),
    GUF("GUF", "法属圭亚那"),
    HKG("HKG", "中国香港"),
    IMN("IMN", "马恩岛"),
    MAC("MAC", "中国澳门"),
    MAF("MAF", "圣马丁岛（法属）"),
    MSR("MSR", "蒙塞拉特岛"),
    MTQ("MTQ", "马提尼克岛"),
    MYT("MYT", "马约特"),
    NCL("NCL", "新喀里多尼亚"),
    NFK("NFK", "诺福克岛"),
    PRI("PRI", "波多黎各"),
    PSE("PSE", "巴勒斯坦"),
    PYF("PYF", "法属波利尼西亚"),
    REU("REU", "留尼汪"),
    TCA("TCA", "特克斯和凯科斯群岛"),
    TWN("TWN", "中国台湾"),
    VAT("VAT", "梵蒂冈城"),
    VGB("VGB", "英属维尔京群岛"),
    VIR("VIR", "美属维尔京群岛");

    private final String code;
    private final String name;

    CountryEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public String getName() {
        return name;
    }

    public static CountryEnum getByCode(String code) {
        for (CountryEnum item : CountryEnum.values()) {
            if (item.getCode().equals(code)) {
                return item;
            }
        }
        return null;
    }
}